SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TCMOBA_DETR_U01]
/*---------------------------------------------------------*/
/*---Empresa              : OFISIS S.A.                  --*/
/*---Cliente              : OFISIS S.A.                  --*/
/*---Sistema              : Tesoreria                    --*/
/*---M÷dulo               : Empresa                      --*/
/*---Programa             : Actualiz. datos Detraccion	 --*/
/*---                     TMDOCU_PROV y a la  TCMOBA_DETR--*/
/*---Nombre SP            : SP_TCMOBA_DETR_U01           --*/
/*---Desarrollado por     : Carlos Marquez E.            --*/
/*---Fecha Creaci÷n       : 13/12/2006                   --*/
/*---Base Datos           : Microsoft Sql Server         --*/
/*---Versi÷n              : 8.0                          --*/
/*---Invoca a SP          :                              --*/
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
/*---Modificado 1 por     : 				 			--*/
/*---Fecha Modificaciön   : 				 			--*/
/*---Detalle Modificaciön : 				 			--*/
/*---------------------------------------------------------*/
/*-------------------------------------------------------*/  
/*---Modificado 2 por     : 				 			--*/
/*---Fecha Modificaciön   : 				 			--*/
/*---Detalle Modificaciön : 				 			--*/
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/      
/*---Modificado 3 por     : 				 			--*/
/*---Fecha Modificaciön   : 				 			--*/
/*---Detalle Modificaciön : 				 			--*/
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
/*---Comentarios                                        --*/
/*---                                                   --*/
/*---                                                   --*/
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
/*---	Drop Proc SP_TCMOBA_DETR_U01                    --*/
/*---	Grant Execute on SP_TCMOBA_DETR_U01 to public   --*/
/*---	Set NoCount On
Declare
 @ISCO_EMPR			TD_VC_002,   
 @ISCO_USUA_MODI	TD_VC_008,  
 @ISCO_BANC			TD_VC_003,   
 @ISNU_CNTA_BANC	TD_VC_020,  
 @ISAA_BNCO			TD_VC_004,   
 @ISMM_BNCO			TD_VC_002,   
 @ISTI_MOVI_BANC	TD_VC_001,    
 @ISNU_COMP_BANC	TD_VC_008

Set	@ISCO_EMPR = '01'
Set	@ISCO_USUA_MODI = 'OFISIS'
Set	@ISCO_BANC = 'INT'		
Set	@ISNU_CNTA_BANC = '100-3000-183580'
Set	@ISAA_BNCO = '2006'
Set	@ISMM_BNCO = '10'
Set	@ISTI_MOVI_BANC = 'E'
Set	@ISNU_COMP_BANC = '00300344' ---'00300034' -- 

Execute SP_TCMOBA_DETR_U01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, 
@ISNU_COMP_BANC

							   */
/*---------------------------------------------------------*/
 @ISCO_EMPR			TD_VC_002,   
 @ISCO_USUA_MODI	TD_VC_008,  
 @ISCO_BANC			TD_VC_003,   
 @ISNU_CNTA_BANC	TD_VC_020,  
 @ISAA_BNCO			TD_VC_004,   
 @ISMM_BNCO			TD_VC_002,   
 @ISTI_MOVI_BANC	TD_VC_001,    
 @ISNU_COMP_BANC	TD_VC_008

As    
Declare
@VNNU_CONT			TD_IN_001,
@VSNU_CONS_DETR		TD_VC_020, /* Consta Detraccion Actual */
/* Variables para el cursor1 de la tabla TDMOBA_DETR - Detalle detracciones */      
@CSNU_CONS_DETR		TD_VC_020,
@CSNU_RUCS_DETR		TD_VC_020,
@CNIM_MOVI_DETR		TD_NU_016_004,
@CDFE_PAGO_DETR		TD_DT_001,

/* Variables para el cursor2 de la tabla TDMOVI_BANC Detalle Pagos Bancos */      
@CSCO_ENTI			TD_VC_020, /* Codigo de Entidad o Provedor */
@CSTI_DOCU_ENTI		TD_VC_003, /* Tipo de Documento */
@CSNU_DOCU_ENTI		TD_VC_020  /* Numero de Documento*/


-- Declaramos Cursor1 -  Generado del TXT
Declare CU_TCMOBA_DETR_U01_1 Cursor
For 
Select  TDMOBA_DETR.NU_CONS_DETR, TCMOBA_DETR.FE_PAGO_DETR, TDMOBA_DETR.NU_RUCS_DETR, TDMOBA_DETR.IM_MOVI_DETR
From	TCMOBA_DETR

 Inner Join TDMOBA_DETR On
(	TCMOBA_DETR.CO_EMPR = TDMOBA_DETR.CO_EMPR And
	TCMOBA_DETR.CO_BANC = TDMOBA_DETR.CO_BANC And
	TCMOBA_DETR.NU_CNTA_BANC = TDMOBA_DETR.NU_CNTA_BANC And
	TCMOBA_DETR.AA_BNCO = TDMOBA_DETR.AA_BNCO And
	TCMOBA_DETR.MM_BNCO = TDMOBA_DETR.MM_BNCO And
	TCMOBA_DETR.TI_MOVI_BANC = TDMOBA_DETR.TI_MOVI_BANC And
	TCMOBA_DETR.NU_COMP_BANC = TDMOBA_DETR.NU_COMP_BANC )
Where
TCMOBA_DETR.CO_EMPR = @ISCO_EMPR And
TCMOBA_DETR.CO_BANC = @ISCO_BANC And
TCMOBA_DETR.NU_CNTA_BANC = @ISNU_CNTA_BANC And
TCMOBA_DETR.AA_BNCO = @ISAA_BNCO And
TCMOBA_DETR.MM_BNCO = @ISMM_BNCO And
TCMOBA_DETR.TI_MOVI_BANC = @ISTI_MOVI_BANC And
TCMOBA_DETR.NU_COMP_BANC = @ISNU_COMP_BANC 

Order by TDMOBA_DETR.NU_RUCS_DETR, TDMOBA_DETR.IM_MOVI_DETR
	

Begin Tran SP_TCMOBA_DETR_U01
	Select @VNNU_CONT = 0
	Select @VSNU_CONS_DETR = 'XXXXXXXXXX'
	----- Cursor Principal -----
	Open   CU_TCMOBA_DETR_U01_1
	Fetch  CU_TCMOBA_DETR_U01_1
	Into   @CSNU_CONS_DETR, @CDFE_PAGO_DETR, @CSNU_RUCS_DETR, @CNIM_MOVI_DETR

	While @@fetch_status = 0
	Begin    

		-- Declaramos Cursor2 -  Detalle de Pagos Banco
		Declare CU_TCMOBA_DETR_U01_2 Cursor
		For 
		Select  TDMOVI_BANC.CO_ENTI, TDMOVI_BANC.TI_DOCU_ENTI, TDMOVI_BANC.NU_DOCU_ENTI
		From	TDMOVI_BANC
		Inner Join TMPARA_TESO On	
		(	TDMOVI_BANC.CO_EMPR = TMPARA_TESO.CO_EMPR )

		Inner Join TMDOCU_PROV On
		(	TDMOVI_BANC.CO_EMPR = TMDOCU_PROV.CO_EMPR And
			TDMOVI_BANC.TI_ENTI = TMPARA_TESO.CO_TIAU_PROV And
			TDMOVI_BANC.CO_ENTI = TMDOCU_PROV.CO_PROV And
			TDMOVI_BANC.TI_DOCU_ENTI = TMDOCU_PROV.CO_TIPO_DOCU And
			TDMOVI_BANC.NU_DOCU_ENTI = TMDOCU_PROV.NU_DOCU_PROV And
			Len(LTrim(RTrim(IsNull(TMDOCU_PROV.NU_DEPO_DETR,''))))= 0 )

		Where
		TDMOVI_BANC.CO_EMPR = @ISCO_EMPR And
		TDMOVI_BANC.CO_BANC = @ISCO_BANC And
		TDMOVI_BANC.NU_CNTA_BANC = @ISNU_CNTA_BANC And
		TDMOVI_BANC.AA_BNCO = @ISAA_BNCO And
		TDMOVI_BANC.MM_BNCO = @ISMM_BNCO And
		TDMOVI_BANC.TI_MOVI_BANC = @ISTI_MOVI_BANC And
		TDMOVI_BANC.NU_COMP_BANC = @ISNU_COMP_BANC And
		TDMOVI_BANC.TI_ENTI = TMPARA_TESO.CO_TIAU_PROV And
		TDMOVI_BANC.CO_ENTI = @CSNU_RUCS_DETR And
		TDMOVI_BANC.IM_DETA = @CNIM_MOVI_DETR

		Open   CU_TCMOBA_DETR_U01_2
		Fetch  CU_TCMOBA_DETR_U01_2
		Into   	@CSCO_ENTI, @CSTI_DOCU_ENTI, @CSNU_DOCU_ENTI

		While @@fetch_status = 0
		Begin    

			If @VSNU_CONS_DETR != @CSNU_CONS_DETR 
			Begin
				select @VNNU_CONT = @VNNU_CONT + 1

/*
				Select @VNNU_CONT, TMDOCU_PROV.CO_PROV, TMDOCU_PROV.CO_TIPO_DOCU, TMDOCU_PROV.NU_DOCU_PROV, 
@CSNU_CONS_DETR, @CSNU_RUCS_DETR, @VSNU_CONS_DETR, @CNIM_MOVI_DETR
				From TMDOCU_PROV
				Where
				TMDOCU_PROV.CO_EMPR = @ISCO_EMPR And
				TMDOCU_PROV.CO_PROV = @CSCO_ENTI And
				TMDOCU_PROV.CO_TIPO_DOCU = @CSTI_DOCU_ENTI And
				TMDOCU_PROV.NU_DOCU_PROV = @CSNU_DOCU_ENTI And
				Len(LTrim(RTrim(IsNull(TMDOCU_PROV.NU_DEPO_DETR,''))))= 0

*/
				Update	TMDOCU_PROV
				set	TMDOCU_PROV.NU_DEPO_DETR = @CSNU_CONS_DETR, 
					TMDOCU_PROV.FE_DEPO_DETR = @CDFE_PAGO_DETR,
					TMDOCU_PROV.CO_USUA_MODI = @ISCO_USUA_MODI,
					TMDOCU_PROV.FE_USUA_MODI = GetDate()
				Where
				TMDOCU_PROV.CO_EMPR = @ISCO_EMPR And
				TMDOCU_PROV.CO_PROV = @CSCO_ENTI And
				TMDOCU_PROV.CO_TIPO_DOCU = @CSTI_DOCU_ENTI And
				TMDOCU_PROV.NU_DOCU_PROV = @CSNU_DOCU_ENTI And
				Len(LTrim(RTrim(IsNull(TMDOCU_PROV.NU_DEPO_DETR,''))))= 0

				If (@@ERROR != 0)    
				Begin    
					Raiserror 20001 'ERROR DE INSERCION'
					CLOSE CU_TCMOBA_DETR_U01_2
					DEALLOCATE CU_TCMOBA_DETR_U01_2
					CLOSE CU_TCMOBA_DETR_U01_1
					DEALLOCATE CU_TCMOBA_DETR_U01_1
					RollBack Tran SP_TCMOBA_DETR_U01
					Return    
				End
				Else
					select @VSNU_CONS_DETR = @CSNU_CONS_DETR
			End --- Si 

			Fetch  CU_TCMOBA_DETR_U01_2
			Into   	@CSCO_ENTI, @CSTI_DOCU_ENTI, @CSNU_DOCU_ENTI

		End-- Cursor 2
		CLOSE CU_TCMOBA_DETR_U01_2
		DEALLOCATE CU_TCMOBA_DETR_U01_2

		Fetch  CU_TCMOBA_DETR_U01_1
		Into   @CSNU_CONS_DETR, @CDFE_PAGO_DETR, @CSNU_RUCS_DETR, @CNIM_MOVI_DETR

	End -- Cursor 1 
	CLOSE CU_TCMOBA_DETR_U01_1      
	DEALLOCATE CU_TCMOBA_DETR_U01_1      


	Update 	TCMOBA_DETR
	Set 	ST_PROC = 'S',
      		CO_USUA_MODI = @ISCO_USUA_MODI,
      		FE_USUA_MODI = GETDATE()
	Where	CO_EMPR = @ISCO_EMPR
		And CO_BANC = @ISCO_BANC
		And NU_CNTA_BANC = @ISNU_CNTA_BANC
		And AA_BNCO = @ISAA_BNCO
		And MM_BNCO = @ISMM_BNCO
		And TI_MOVI_BANC = 'E'
		And NU_COMP_BANC = @ISNU_COMP_BANC

	If (@@ERROR != 0)   
	Begin    
		Raiserror 20001 'ERROR DE INSERCION'    
		RollBack Tran SP_TCMOBA_DETR_U01
		Return    
	End         

Commit Tran SP_TCMOBA_DETR_U01
/*--------------------------- Fin -------------------------------- */


GO
